[toc]
rest.jsrest.js est un fichier JavaScript servant de serveur de backend pour une application web. Il utilise Meteor js et la bibliothĂšque Express.js pour gĂ©rer les requĂȘtes HTTP et interagit avec une base de donnĂ©es MongoDB.
Le fichier rest.js gĂšre plusieurs points d’accĂšs (endpoints) pour des requĂȘtes HTTP GET et POST.
/api/me/profil/api/me/organizations/api/action/create/api/action/task/create/api/action/task/list/api/action/task/checked/api/action/comment/create/api/action/comment/list/api/action/assign/api/action/finishMe/api/action/listElement/api/action/listMe/api/action/listMe/api/action/dashboardElement/api/action/dashboardUserElement/api/action/dashboardOrgaUserElement/api/generatetokenchat/api/generatetokenrest(/:ical)?/api/generatetoken/:tokenName/api/batchjson/create/api/hooks/gitlab/api/hooks/github/:projectid/api/organizations/:id/events/api/organizations/:id/meWallet/ical/organizations/:id/events/ical/organizations/:id/events/archives/ical/organizations/:id/actions/ical/citoyens/:id/:token/actions/download/doc/:moduleId/:folder/:name/file/:suite/api/me/profilCet endpoint est utilisĂ© pour rĂ©cupĂ©rer les informations de profil de l’utilisateur actuellement authentifiĂ©.
/api/me/organizationsCet endpoint est utilisĂ© pour rĂ©cupĂ©rer la liste des organisations auxquelles l’utilisateur actuellement authentifiĂ© appartient.
/api/action/createCet endpoint est utilisĂ© pour crĂ©er une action. Les dĂ©tails de l’action Ă crĂ©er doivent ĂȘtre inclus dans le corps de la requĂȘte POST en JSON. Ces dĂ©tails sont validĂ©s Ă l’aide du schĂ©ma SchemasActionsRest. Voici les champs qui peuvent ĂȘtre inclus :
name (String) : Nom de l’action. Obligatoire.description (String) : Description de l’action.tags (Array of Strings) : Tags associĂ©s Ă l’action. Exemple : "tags": ["tag1", "tag2", "tag3"].tagsText (String) : Texte des tags. Optionnel.assignText (String) : Texte d’assignation. Optionnel.assign (Array of Strings) : Assignation. Optionnel.finishedBy (Array of Strings) : Utilisateurs qui ont terminĂ© l’action. Optionnel.validated (Array of Strings) : Utilisateurs qui ont validĂ© l’action. Optionnel.credits (Number) : CrĂ©dits associĂ©s Ă l’action. Optionnel, valeur par dĂ©faut : 1.max (Number) : Maximum. Optionnel.min (Number) : Minimum. Optionnel.idParentRoom (String) : ID de la salle parente. Optionnel.startDate (Date) : Date de dĂ©but de l’action. Optionnel.endDate (Date) : Date de fin de l’action. Optionnel.parentId (String) : ID du parent. Obligatoire.parentType (String) : Type de parent. Obligatoire, les valeurs autorisĂ©es sont : ‘projects’, ‘organizations’, ‘events’, ‘citoyens’.urls (Array of Strings) : URLs associĂ©es Ă l’action. Optionnel.milestoneId (String) : ID du jalon. Optionnel.options (Object) : Options associĂ©es Ă l’action. Optionnel.creditAddPorteur (Boolean) : Option pour ajouter du crĂ©dit au porteur. Optionnel, valeur par dĂ©faut : false.creditSharePorteur (Boolean) : Option pour partager du crĂ©dit avec le porteur. Obligatoire, valeur par dĂ©faut : false.possibleStartActionBeforeStartDate (Boolean) : Option pour permettre de commencer l’action avant la date de dĂ©but. Optionnel, valeur par dĂ©faut : false.Veuillez noter que la dĂ©finition exacte de ces champs peut varier en fonction du contexte de votre application. Il est recommandĂ© de consulter le code source et la documentation de votre application pour obtenir des informations plus prĂ©cises.
/api/action/task/createCet endpoint est utilisĂ© pour crĂ©er une tĂąche liĂ©e Ă une action. Les dĂ©tails de la tĂąche Ă crĂ©er doivent ĂȘtre inclus dans le corps de la requĂȘte POST en JSON. Ces dĂ©tails sont validĂ©s Ă l’aide d’un schĂ©ma SimpleSchema. Voici les champs qui peuvent ĂȘtre inclus :
id (String) : L’ID de l’action Ă laquelle la tĂąche sera liĂ©e. Obligatoire.task (String) : Le nom ou la description de la tĂąche Ă crĂ©er. Obligatoire./api/action/task/listCet endpoint est utilisĂ© pour rĂ©cupĂ©rer une liste de tĂąches liĂ©es Ă une action spĂ©cifique. Les dĂ©tails de l’action sont passĂ©s dans le corps de la requĂȘte POST en JSON. Ces dĂ©tails sont validĂ©s Ă l’aide d’un schĂ©ma SimpleSchema. Voici les champs qui peuvent ĂȘtre inclus :
id (String) : L’ID de l’action pour laquelle rĂ©cupĂ©rer les tĂąches. Obligatoire./api/action/task/checkedCet endpoint est utilisĂ© pour marquer une tĂąche comme "vĂ©rifiĂ©e" ou "complĂ©tĂ©e". Les dĂ©tails de la tĂąche Ă vĂ©rifier sont passĂ©s dans le corps de la requĂȘte POST en JSON. Ces dĂ©tails sont validĂ©s Ă l’aide d’un schĂ©ma SimpleSchema. Voici les champs qui peuvent ĂȘtre inclus :
id (String) : L’ID de l’action Ă laquelle la tĂąche est liĂ©e. Obligatoire.taskId (String) : L’ID de la tĂąche Ă marquer comme vĂ©rifiĂ©e. Obligatoire./api/action/comment/createCe endpoint est utilisĂ© pour crĂ©er un commentaire sur une action. Les dĂ©tails du commentaire sont passĂ©s dans le corps de la requĂȘte POST.
id (String) : L’ID de l’action Ă laquelle la tĂąche est liĂ©e. Obligatoire.text (String) : Le texte du commentaire. Obligatoire./api/action/comment/listCe endpoint est utilisĂ© pour rĂ©cupĂ©rer une liste de commentaires sur une action spĂ©cifique. Les dĂ©tails de l’action sont passĂ©s dans le corps de la requĂȘte POST.
id (String) : L’ID de l’action Ă laquelle la tĂąche est liĂ©e. Obligatoire./api/action/assignCe endpoint est utilisĂ© pour assigner une action Ă un utilisateur spĂ©cifique. Les dĂ©tails de l’assignation sont passĂ©s dans le corps de la requĂȘte POST.
id (String) : L’ID de l’action Ă laquelle la tĂąche est liĂ©e. Obligatoire.memberId (String) : L’ID de l’utilisateur Ă qui assigner l’action. Obligatoire.parentId (String) : L’ID du parent de l’action. Obligatoire.parentType (String) : Le type de parent de l’action. Obligatoire. Les valeurs autorisĂ©es sont : ‘organizations’, ‘projects’, ‘events’./api/action/finishMeCe endpoint est utilisĂ© pour marquer une action comme "terminĂ©e". Les dĂ©tails de l’action sont passĂ©s dans le corps de la requĂȘte POST.
id (String) : L’ID de l’action Ă laquelle la tĂąche est liĂ©e. Obligatoire./api/action/listElementCe endpoint est utilisĂ© pour rĂ©cupĂ©rer une liste d’actions liĂ© Ă un Ă©lĂ©ment spĂ©cifique. Les dĂ©tails de l’Ă©lĂ©ment sont passĂ©s dans le corps de la requĂȘte POST.
parentId (String) : L’ID du parent de l’action. Obligatoire.parentType (String) : Le type de parent de l’action. Obligatoire/api/action/listMeCe endpoint est utilisĂ© pour rĂ©cupĂ©rer une liste d’actions liĂ©es Ă l’utilisateur actuellement authentifiĂ©.
/api/action/listMeCe endpoint est Ă©galement utilisĂ© pour rĂ©cupĂ©rer une liste d’actions liĂ©es Ă l’utilisateur actuellement authentifiĂ©, mais avec des paramĂštres supplĂ©mentaires qui peuvent ĂȘtre passĂ©s dans le corps de la requĂȘte POST.
search (String) : Le texte de recherche. Optionnel.parentId (String) : L’ID du parent de l’action. Optionnel.parentType (String) : Le type de parent de l’action. Optionnel. Les valeurs autorisĂ©es sont : ‘organizations’, ‘projects’, ‘events’, ‘citoyens’./api/action/dashboardElementCe endpoint est utilisĂ© pour rĂ©cupĂ©rer les donnĂ©es du tableau de bord pour un Ă©lĂ©ment spĂ©cifique. Les dĂ©tails de l’Ă©lĂ©ment sont passĂ©s dans le corps de la requĂȘte POST.
/api/action/dashboardUserElementCe endpoint est utilisĂ© pour rĂ©cupĂ©rer les donnĂ©es du tableau de bord pour un utilisateur spĂ©cifique. Les dĂ©tails de l’utilisateur sont passĂ©s dans le corps de la requĂȘte POST.
/api/action/dashboardOrgaUserElementCe endpoint est utilisĂ© pour rĂ©cupĂ©rer les donnĂ©es du tableau de bord pour une organisation spĂ©cifique. Les dĂ©tails de l’organisation sont passĂ©s dans le corps de la requĂȘte POST.
/api/generatetokenchatCe endpoint est utilisĂ© pour gĂ©nĂ©rer un token pour le chat. Les dĂ©tails nĂ©cessaires pour gĂ©nĂ©rer le token sont passĂ©s dans le corps de la requĂȘte POST.
/api/generatetokenrest(/:ical)?Ce endpoint est utilisĂ© pour gĂ©nĂ©rer un token pour les requĂȘtes REST. Il peut Ă©galement prendre un paramĂštre optionnel ical dans l’URL. Les dĂ©tails nĂ©cessaires pour gĂ©nĂ©rer le token sont passĂ©s dans le corps de la requĂȘte POST.
/api/generatetoken/:tokenNameCet endpoint est utilisĂ© pour gĂ©nĂ©rer un token d’accĂšs. Le nom du token est passĂ© en tant que paramĂštre dans l’URL (:tokenName). Le token gĂ©nĂ©rĂ© est associĂ© Ă l’utilisateur actuellement authentifiĂ©, dont l’ID est obtenu Ă partir de l’en-tĂȘte HTTP x-user-id.
tokenName (String) : Le nom du token Ă gĂ©nĂ©rer. Obligatoire.x-access-token : Token d’accĂšs pour authentifier l’utilisateur. Obligatoire.x-user-id : ID de l’utilisateur Ă authentifier. Obligatoire.{
"_id": "user_id_here",
"username": "username_here",
"name": "name_here",
"email": "email_here",
"tokenName": "token_name_here",
"token": "generated_token_here",
"status": true,
"msg": "generate token rest oceco"
}
{
"status": false,
"msg": "not token"
}
ou
{
"status": false,
"msg": "not user"
}
/api/batchjson/createCe endpoint est utilisĂ© pour crĂ©er un lot de donnĂ©es JSON. Les donnĂ©es Ă crĂ©er sont probablement passĂ©es dans le corps de la requĂȘte POST.
/api/hooks/gitlabCe endpoint est utilisĂ© pour recevoir des webhooks de GitLab. Les dĂ©tails du webhook sont passĂ©s dans le corps de la requĂȘte POST.
/api/hooks/github/:projectidCe endpoint est utilisĂ© pour recevoir des webhooks de GitHub pour un projet spĂ©cifique. L’ID du projet est passĂ© en tant que paramĂštre dans l’URL, et les dĂ©tails du webhook sont passĂ©s dans le corps de la requĂȘte POST.
/api/organizations/:id/eventsCe endpoint est utilisĂ© pour rĂ©cupĂ©rer les Ă©vĂ©nements d’une organisation spĂ©cifique. L’ID de l’organisation est passĂ© en tant que paramĂštre dans l’URL.
/api/organizations/:id/meWalletCe endpoint est utilisĂ© pour rĂ©cupĂ©rer le portefeuille de l’utilisateur actuellement authentifiĂ© pour une organisation spĂ©cifique. L’ID de l’organisation est passĂ© en tant que paramĂštre dans l’URL.
/ical/organizations/:id/eventsCe endpoint est utilisĂ© pour rĂ©cupĂ©rer les Ă©vĂ©nements iCal d’une organisation spĂ©cifique. L’ID de l’organisation est passĂ© en tant que paramĂštre dans l’URL.
/ical/organizations/:id/events/archivesCe endpoint est utilisĂ© pour rĂ©cupĂ©rer les Ă©vĂ©nements archivĂ©s iCal d’une organisation spĂ©cifique. L’ID de l’organisation est passĂ© en tant que paramĂštre dans l’URL.
/ical/organizations/:id/actionsCe endpoint est utilisĂ© pour rĂ©cupĂ©rer les actions iCal d’une organisation spĂ©cifique. L’ID de l’organisation est passĂ© en tant que paramĂštre dans l’URL.
/ical/citoyens/:id/:token/actionsCe endpoint est utilisĂ© pour rĂ©cupĂ©rer les actions iCal d’un citoyen spĂ©cifique. L’ID du citoyen et le token sont passĂ©s en tant que paramĂštres dans l’URL.
/download/doc/:moduleId/:folder/:name/file/:suiteCe endpoint est utilisĂ© pour tĂ©lĂ©charger un document spĂ©cifique. Les dĂ©tails du document sont passĂ©s en tant que paramĂštres dans l’URL.
runAsUser(userId, function())Cette fonction permet d’exĂ©cuter une certaine fonction en tant qu’utilisateur spĂ©cifique. Elle prend en entrĂ©e l’ID de l’utilisateur et la fonction Ă exĂ©cuter.
verifyRestToken(id, 'restIcal', token)Cette fonction est utilisĂ©e pour vĂ©rifier le token d’un utilisateur. Elle prend en entrĂ©e l’ID de l’utilisateur, le type de token (dans ce cas, ‘restIcal’), et le token Ă vĂ©rifier.
verifyTokenMeteor(req, res, next)Cette fonction est un middleware utilisĂ© pour vĂ©rifier le token d’un utilisateur. Elle est gĂ©nĂ©ralement appelĂ©e avant d’exĂ©cuter un autre middleware ou une fonction de gestion d’endpoint. Elle prend en entrĂ©e la requĂȘte (req), la rĂ©ponse (res), et la fonction next qui est gĂ©nĂ©ralement appelĂ©e aprĂšs avoir terminĂ© l’exĂ©cution de ce middleware.
Pour les endpoints nĂ©cessitant une authentification, vous pouvez utiliser les tokens obtenus via le SSO (/oauth/userinfo). Ces tokens doivent ĂȘtre inclus dans les en-tĂȘtes HTTP de la requĂȘte comme suit :
user_id du SSO est mappĂ© Ă x-user-id dans l’en-tĂȘte HTTP.apiToken du SSO est mappĂ© Ă x-access-token dans l’en-tĂȘte HTTP.Pour gĂ©nĂ©rer un token Oceco spĂ©cifique pour Tibillet, utilisez la commande curl suivante :
curl --location --request GET 'https://oce.co.tools/api/generatetoken/tibillet' \
<p><hr /></p>header 'x-access-token: apiToken' \
<p><hr /></p>header 'x-user-id: user_id' \
<p><hr /></p>header 'Content-Type: application/json'
La rĂ©ponse sera un JSON contenant le nouveau token et d’autres informations sur l’utilisateur.
{
"_id": "user_id_here",
"username": "username_here",
"name": "name_here",
"email": "email_here",
"tokenName": "tibillet",
"token": "generated_token_here",
"bearer": "authorization_bearer_token",
"status": true,
"msg": "generate token rest oceco"
}
Une fois que vous avez gĂ©nĂ©rĂ© un token Oceco pour Tibillet, vous pouvez l’utiliser pour accĂ©der Ă diffĂ©rents endpoints. Par exemple :
curl --location --request GET 'https://oce.co.tools/api/action/listMe' \
<p><hr /></p>header 'x-access-token: token' \
<p><hr /></p>header 'x-user-id: user_id' \
<p><hr /></p>header 'x-token-name: tibillet' \
<p><hr /></p>header 'Content-Type: application/json'
curl --location --request GET 'https://oce.co.tools/api/organizations/:organizationId/meWallet' \
<p><hr /></p>header 'x-access-token: token' \
<p><hr /></p>header 'x-user-id: user_id' \
<p><hr /></p>header 'x-token-name: tibillet' \
<p><hr /></p>header 'Content-Type: application/json'
La rĂ©ponse sera un JSON contenant le solde du portefeuille pour l’utilisateur au sein de l’organisation spĂ©cifiĂ©e.
{
"status": true,
"userId": "user_id_here",
"organizationId": "organization_id_here",
"wallet": 1785,
"msg": "organization wallet user"
}
On peut aussi utiliser aussi le header Authorization: Bearer bearerToken pour faire les appelles
curl --location --request POST 'http://localhost:3000/api/action/create' \
<p><hr /></p>header 'Authorization: Bearer bearerToken' \
<p><hr /></p>header 'Content-Type: application/json' \
-d '{"name":"test beaerer", "parentId":"55ed9107e41d75a41a558524", "parentType":"citoyens"}'